#include <iostream>
using namespace std;

class base {
private:
  int i;
public:
  int j, k;
  void seti(int x) { i = x; }
  int geti() { return i; }
};

class derived: private base {
public:
  base::j;
  base::seti;
  base::geti;

  int a;
};

int main()
{
  derived ob;

  ob.j = 20; // legal because j is made public in derived
//ob.k = 30; // illegal because k is private in derived

  ob.a = 40; // legal because a is public in derived
  ob.seti(10);

  cout << ob.geti() << " " << ob.j << " " << ob.a;

  return 0;
}
